/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufjf.pos.model.dao;

import br.ufjf.pos.model.Dentista;
import br.ufjf.pos.model.Paciente;

import br.ufjf.pos.util.GenericDao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author cleber
 */
public class DentistaDAO extends GenericDao<Dentista, Integer>{

    @Override
    public void inserir(Dentista obj) throws SQLException, ClassNotFoundException {
        String sql = "INSERT INTO TBfuncionario (DFnome, DFid_cargo, DFid_horario_trabalho) VALUES ( ?, ?, ? )";
        
        ArrayList<String> lista = new ArrayList<String>();
        lista.add(obj.getNome());
        lista.add(String.valueOf(obj.getIdCargo()));
        lista.add(String.valueOf(obj.getIdHorarioTrabalho()));
        
        
        executaDML(sql, lista);
    }

    
    @Override
    public void alterar(Dentista obj) throws SQLException, ClassNotFoundException {
        ArrayList<String> lista = new ArrayList<String>();
        String sql = "UPDATE TBfuncionario SET DFnome = ?,"
                          + "DFid_cargo = ?, "
                          + "DFid_horario_trabalho = ? "
                   + " WHERE DFid_funcionario = ? ";        
        
        lista.add(obj.getNome());
        lista.add(String.valueOf(obj.getIdCargo()));
        lista.add(String.valueOf(obj.getIdHorarioTrabalho()));
        lista.add(String.valueOf(obj.getIdDentista()));
        
        //ResultSet rs = executaDML(sql, lista);
        //rs.next();     
        executaDML(sql, lista);  
    }

    @Override
    public void apagar(Dentista obj) throws SQLException, ClassNotFoundException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public Dentista pesquisaChave(Integer obj) throws SQLException, ClassNotFoundException {
        String sql = "SELECT * FROM TBfuncionario WHERE DFid_funcionario = ? ";
        ArrayList<String> lista = new ArrayList<String>();
        lista.add(obj.toString());

        ResultSet rs = executasql(sql, lista);
        if(rs.next()){                    
            Dentista p = new Dentista(rs.getInt("DFid_funcionario"), rs.getString("DFnome"), rs.getInt("DFid_cargo"), rs.getInt("DFid_horario_trabalho"));
            return p;
        } else {
            return null;
        }   
    }

    @Override
    public ArrayList<Dentista> buscarTodos() throws SQLException, ClassNotFoundException {
        String sql = "SELECT DFid_funcionario, dfnome, dfid_cargo, dfid_horario_trabalho FROM TBfuncionario  ";
        ArrayList<String> lista = new ArrayList<String>();        
        
        ArrayList<Dentista> listaDentista = new ArrayList<Dentista>();
        
        ResultSet rs = executasql(sql, lista);
        while(rs.next()){               
            Dentista p = new Dentista(rs.getInt("DFid_funcionario"),rs.getString("dfnome"),rs.getInt("dfid_cargo"),rs.getInt("dfid_horario_trabalho"));
            listaDentista.add(p);
        } 
     
        return listaDentista;
    }
    
    public Dentista pesquisaNome (String obj) throws SQLException, ClassNotFoundException {
        String sql = "SELECT * FROM TBfuncionario WHERE DFnome = ? ";
        ArrayList<String> lista = new ArrayList<String>();
        lista.add(obj);

        ResultSet rs = executasql(sql, lista);
        if(rs.next()){                    
            Dentista p = new Dentista(rs.getInt("DFid_funcionario"), rs.getString("DFnome"), rs.getInt("DFid_cargo"), rs.getInt("DFid_horario_trabalho"));
            return p;
            
        } else {
            return null;
        }   
    }
    
}
